#pragma once

#include "File.h"
#include <string>
#include <fstream>

namespace GPUCC
{
	class StlFile : public File
	{
	public:
		StlFile(const std::string& Path, bool BinaryMode = false);
		StlFile(const StlFile& Other);
		virtual ~StlFile();

		virtual bool Open(bool ReadOnly = false);
		virtual void Close();
		virtual bool IsOpen();

		bool BinaryMode();
		std::fstream& GetStream();

	protected:
		virtual unsigned int GetSizeInternal();

	private:
		bool m_BinaryMode;
		std::fstream m_Stream;
	};
}